# encoding:utf-8
'''
@author : xaing
@time : 2019/4/7 12:07
@地址 : 广州
@作用 : windows 相关的
@结果 :
'''


import webbrowser
import requests
import datetime
import time
import os
from version1 import logUtils as log


def startTomcat(tomcatStartPath):
    '''
    启动tomcat
    :param tomcatStartPath: tomcat的 startup.bat 文件位置  d:\\apache-tomcat-7.0.85\\bin\\startup.bat
    :return:
    '''
    webbrowser.open("file:///" + tomcatStartPath)


def stopTomcat():
    '''
    关闭tomcat
    :return:
    '''
    # webbrowser.open("file:///" + tomcatStop) 这种方式有时候并不能很好的关闭，在实际使用时发现这个有时候并不能关闭tomcat
    # 终止tomcat 进程，有多个tomcat部署的时候不能使用该方式，会导致将全部的应用全部关闭
    os.system("taskkill /F /IM java.exe")


def getPID(port):
    '''
    根据端口获取PID
    :param port: 端口  getPID("8080")
    :return: 返回获取的PID，没找到则返回0
    '''
    try:
        # 根据命令获取到指定端口的信息 TCP    0.0.0.0:8080（端口）           0.0.0.0:0              LISTENING       6856（PID）
        ret = os.popen("netstat -nao | findstr " + port)
        str_list = ret.read()
        print(str_list)
        # 字符串按空格分成列表split()
        ret_list = str_list.split()
        # 截取出pid， TODO 这里截取 :6 可能会出现pid很长的时候有问题
        pid = ret_list[4][:6]
        return pid
    except:
        print("根据端口找不到该对应PID")
        return "0"



def killPid(pid):
    try:
        os.popen('taskkill.exe /pid:' + str(pid))
        print("已经杀死PID为 " + pid + " 的进程")
    except OSError:
        errorStr = OSError.errno
        log.outWarningLog('没有此进程!!!Pid为：', pid, ", 错误信息：", errorStr)
